package com.global.dao;

import java.util.List;

import com.global.model.DataSourceX;
import com.global.model.DataSourceXColumn;

public interface DataSourceXColumnDao extends GenericDao<DataSourceXColumn, Long> {

	/**
	 * 保存DataSourceXColumn对象
	 * @param dataSourceXColumn
	 * @return 持久化DataSourceXColumn对象
	 */
	DataSourceXColumn saveDataSourceXColumn(DataSourceXColumn dataSourceXColumn);
	
	/**
	 * 批量保存DataSourceXColumn对象
	 * @param columnList DataSourceXColumn对象清单
	 */
	void saveBatchDataSourceXColumns(List<DataSourceXColumn> columnList);
	
	/**
	 * 批量保存DataSourceXColumn对象
	 * @param saveList 新增（更新）的DataSourceXColumn对象清单
	 * @param deleteList 删除的DataSourceXColumn对象清单
	 */
	void saveBatchDataSourceXColumns(List<DataSourceXColumn> saveList, List<DataSourceXColumn> deleteList);
	
	/**
	 * 根据数据源字段别名从DB中检索出唯一的数据源字段信息
	 * @param aliasName 据数据源字段别名
	 * @return
	 */
	DataSourceXColumn getDataSourceXColumn(String aliasName);
	
	/**
	 * 从DB中检索出某个数据源中的字段清单
	 * <br/><span style="color:red">并且按照显示顺序进行升序排列</span>
	 * @param dataSourceX
	 * @return List
	 */
	List<DataSourceXColumn> getDataSourceXColumnList(DataSourceX dataSourceX);
	
	/**
	 * 删除某个数据源字段
	 */
	void deleteDataSourceXColumn(DataSourceXColumn dataSourceXColumn);
	
	/**
	 * 批量删除数据源字段
	 * @param dataSourceXColumnList
	 */
	public void deleteBatchDataSourceXColumns(List<DataSourceXColumn> dataSourceXColumnList);
	
	/**
	 * 验证是否被GridColumn绑定了
	 * @param dataSourceXColumn
	 * @return true 表示被GridColumn绑定了
	 */
	boolean isBinded(DataSourceXColumn dataSourceXColumn);
}
